} else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }! } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }L } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }A } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }K } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }T } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }— } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }T } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }J } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }• } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }• } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }I } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }I } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }U } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }I } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }' } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }@ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }→ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }X } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }@ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }* } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }[ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }] } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }Y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }F } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }R } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }% } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }@ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }{ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }( } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }, } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }) } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }} } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }z } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }_ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }: } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }4 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }5 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }j } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }7 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }8 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }6 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }L } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }A } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }K } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }T } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }— } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }T } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }J } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }1 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }• } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }V } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }0 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }9 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }· } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }& } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }T } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }& } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }; } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }R } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }P } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }F } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }# } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }M } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }O } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }· } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }· } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }N } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }A } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }H } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }H } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }A } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }L } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }E } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }x } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }A } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }3 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }L } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }S } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }q } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }R } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }I } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }R } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }D } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }m } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }u } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }k } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }. } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }t } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }C } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }- } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }d } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }v } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }c } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }= } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }y } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }b } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }o } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }w } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }" } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }F } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }l } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }a } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }s } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }B } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }r } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }e } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }f } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }i } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }n } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }g } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }/ } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }p } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; } } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }< } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }h } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }2 } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCandidates(ctx, {path:`${info.path}:${table.name}`}, table.rows); } continue; }> } else if(info.ext==='xlsx' || info.ext==='xls'){ const sheets = await parseExcelFile(info.file); if(!sheets.length){ ctx.diag.push('[WARN] empty workbook'); continue; } for(const sheet of sheets){ ctx.diag.push(` [INFO] sheet ${sheet.name}`); takeArrayCandidates(ctx, {path:`${info.path}:${sheet.name}`}, sheet.rows); } continue; } else if(info.ext==='html' || info.ext==='htm'){ const tables = await parseHtmlTables(info.file); if(!tables.length){ ctx.diag.push('[WARN] HTML file contained no tables'); continue; } for(const table of tables){ ctx.diag.push(` [INFO] html table ${table.name} (${table.rows.length} rows)`); takeArrayCan